Skip to content

Opt out of Windows fullscreen exclusive via VK_EXT_full_screen_exclusive#874

Open
OkaySleepy wants to merge 1 commit into
xCollateral:devfrom
OkaySleepy:dev
Open

Opt out of Windows fullscreen exclusive via VK_EXT_full_screen_exclusive#874
OkaySleepy wants to merge 1 commit into
xCollateral:devfrom
OkaySleepy:dev

Conversation

@OkaySleepy

Copy link
Copy Markdown

Fixes black screen capture, stream lag on Discord/OBS, and occasional black screens when running the game in fullscreen or borderless fullscreen on Windows.

Windows automatically promotes fullscreen-sized Vulkan swapchains to independent flip mode, bypassing the Desktop Window Manager (DWM) compositor that screen capture software reads from.

This change opts out of exclusive fullscreen behavior when supported by the driver:

  • Checks for and enables VK_KHR_get_surface_capabilities2 during Vulkan instance creation on Windows.
  • Checks for and optionally enables VK_EXT_full_screen_exclusive during logical device creation without breaking Linux, macOS, or older drivers.
  • Chains VkSurfaceFullScreenExclusiveInfoEXT with VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT to VkSwapchainCreateInfoKHR during swapchain creation and recreation.

Fixes black screen capture, stream lag on Discord/OBS, and occasional black screens when running the game in fullscreen or borderless fullscreen on Windows.

Windows automatically promotes fullscreen-sized Vulkan swapchains to independent flip mode, bypassing the Desktop Window Manager (DWM) compositor that screen capture software reads from.

This change opts out of exclusive fullscreen behavior when supported by the driver:
* Checks for and enables VK_KHR_get_surface_capabilities2 during Vulkan instance creation on Windows.
* Checks for and optionally enables VK_EXT_full_screen_exclusive during logical device creation without breaking Linux, macOS, or older drivers.
* Chains VkSurfaceFullScreenExclusiveInfoEXT with VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT to VkSwapchainCreateInfoKHR during swapchain creation and recreation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant